#include <iostream>
#include <string>

using namespace std;

/*
函数重载 容易由于 默认参数 造成二义性
*/

void Swap_Func(int &val_1, int &val_2)
{
	int temp = val_2;
	val_2 = val_1;
	val_1 = temp;
}

void Swap_Func(int &val_1, int &val_2, int val = 10)
{
	int temp = val_2;
	val_2 = val_1;
	val_1 = temp;
}

/*
当传递的参数为常量引用时 也是可以区分
	非常量引用  ==  变量
	常量引用  ==   常量 或 表达式
*/
void Func(const int &val)
{
	cout << "我是一号" << val << endl;
}
void Func(int &val)
{
	cout << "我是二号" << val << endl;
}
int main(int argc, char const *argv[])
{
	int val_int_1 = 50;
	int val_int_2 = 70;
	Swap_Func(val_int_1, val_int_2, 10);
	Func(50);
	return 0;
}
